The present disclosure relates to an approach to restore a register with history buffer contents in a distributed history buffer architecture.
In traditional processors, a history buffer is a centralized component of an execution unit that preserves register contents when a register is a target of a newly dispatched instruction and the target register's contents require preservation, such as during a branch instruction. However, processors with distributed architectures may configure history buffers and registers in a distributed manner instead of a one-to-one configuration as in traditional processor designs. As such, processors with a distributed architecture require a substantial amount of ports, entries, and wires to connect history buffers to registers to support flush and restore operations.